package com.quanyan.stadium.utils.demo.view;

/**
 * Created by xiaoxiao on 17/2/6.
 *
 * 静态内部类
 *
 * 优点:Singleton类被装载了，instance不一定被初始化。因为SingletonHolder类没有被主动使用，只有显示通过调用getInstance方法时，才会显示装载SingletonHolder类，从而实例化instance.
 * 相比懒汉,不希望在Singleton类加载时就实例化，因为我不能确保Singleton类还可能在其他的地方被主动使用从而被加载(只希望使用器里面的的一些静态方法而不想加载他)，静态内部类的方式就很好的多了。
 *
 */
public class Singleton3 {

    //静态内部类,使用static修饰,直接被使用
    private static class SingletonHolder {
        private static final Singleton3 INSTANCE = new Singleton3();
    }

    private Singleton3(){

    }

    //提供给外部使用的构造器,绑定在类本身,而与对象无关
    public static Singleton3 getInstance(){
        return SingletonHolder.INSTANCE;
    }

}
